package lanqiao._02算法训练.page04;

import java.util.Scanner;

/**
 * @author 挚爱之夕
 * @version 1.0
 * @implSpec
 * 问题描述
 * 　　给出一个n长的数列，再进行m次询问，每次询问询问两个区间[L1,R1]，[L2,R2]，
 * 　　询问数列第L2到R2个数字每一个数在数列第L1到R1个数中有多少个数字不大于它。
 * 输入格式
 * 　　第一行两个整数n,m
 * 　　第二行n个整数，表示数列。
 * 　　接下来m行，每行四个整数L1,R1,L2,R2，意义如上
 * 输出格式
 * 　　m行，每行R2-L2+1个整数，第一个整数表示第L2个数在数列第L1到R1个数中不大于它的个数，第一个整数表示第L2+1个数在数列第L1到R1个数中不大于它的个数，以此类推
 * 样例输入
 * 5 3
 * 5 2 3 4 1
 * 1 2 3 4
 * 2 3 1 5
 * 1 5 2 3
 * 样例输出
 * 1 1
 * 2 1 2 2 0
 * 2 3
 * 数据规模和约定
 * 　　n,m<=1000，数列的数字非负且小于1000。
 * @since 2023 - 01 - 02 - 17:22
 */
public class _31比较 {
}
class Main_31{
    static int[] nums;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), m = sc.nextInt();
        nums = new int[n];
        for(int i = 0; i < n; i++){
            nums[i] = sc.nextInt();
        }
        int l1, l2, r1, r2;
        for(int i = 0; i < m; i++){
            l1 = sc.nextInt() - 1;
            r1 = sc.nextInt() - 1;
            l2 = sc.nextInt() - 1;
            r2 = sc.nextInt() - 1;
            deal(l1, r1, l2, r2);
        }
    }
    static void deal(int l1, int r1, int l2, int r2){
        for(int i = l2; i <= r2; i++){
            int cnt = 0;
            for(int j = l1; j <= r1; j++){
                if(nums[j] <= nums[i]) cnt++;
            }
            System.out.print(cnt + " ");
        }
        System.out.println();
    }
}
